home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pinstaller / tests / GLITestInstallScript.py < prev    next >
Text File  |  2005-08-22  |  6KB  |  144 lines

  1. # Copyright 1999-2005 Gentoo Foundation
  2. # This source code is distributed under the terms of version 2 of the GNU
  3. # General Public License as published by the Free Software Foundation, a copy
  4. # of which can be found in the main directory of this project.
  5.  
  6. import unittest
  7. import os
  8. import GLIInstallProfile
  9. import GLIInstallTemplate
  10. import GLILogger
  11. import GLIClientController
  12. import GLIClientConfiguration
  13. import GLIUtility
  14. from GLIClientConfiguration import ClientConfiguration
  15.  
  16. config = ClientConfiguration()
  17.  
  18. class test_GLIInstall (unittest.TestCase):
  19.  
  20.     def setUp(self):
  21.         self.failUnless(os.path.exists("GLITestInstallScript.py"), "Please run tests from src")
  22.         self.failUnless(os.path.exists("GLIInstallTemplate.py"), "Please run tests from src")
  23.  
  24.     def testTheLogger(self):
  25.         logger = GLILogger.Logger.shared_logger();
  26.         self.failUnless(logger, "Could not get shared logger");
  27.         logger.log("Test log message one.")
  28.         logger.mark()
  29.         
  30.     def testINSTALL(self):
  31.     #Lets start by instantiating our objects.
  32.         logger = GLILogger.Logger.shared_logger();
  33.         profile = GLIInstallProfile.InstallProfile()
  34.         logger.log("Instantiated Profile")
  35.         
  36.         path = os.getcwd()
  37.         path = os.path.join(path, "", "mytest.xml")
  38.         profile.parse("file://" + path)
  39.         logger.log("Profile parsed")
  40.         
  41.         template = GLIInstallTemplate.GLIInstallTemplate(profile,config);
  42.         logger.log("Template Instantiated.  This means the profile is there, not the clientconfig")
  43.         print "Welcome to this fake gentoo installer.  As you may yourself presently be aware of, my grammer sucks."
  44.     #User should be prompted whether to install kernel modules not autodetected.
  45.         
  46.                 
  47.         template.partition_local_devices()
  48.         
  49.         logger.log( "Next comes the MAGIC partitioner.  I have no idea how this is going to work, but lets just assume for a second that it has done it's job correctly.")
  50.         print "Next comes the MAGIC partitioner.  I have no idea how this is going to work, but lets just assume for a second that it has done it's job correctly."
  51.         print "You should also mount the local partitions now."
  52. #        GLIUtility.spawn_bash()
  53.         
  54.         template.mount_local_partitions()
  55.         logger.log( "The profile should know the partition root is on.  For this demo all is assumed mounted.")
  56.         print "The profile should know the partition root is on.  For this demo all is assumed mounted."
  57.         
  58.         template.mount_network_shares()
  59.         logger.log( "If we had network shares to mount, they would have been mounted by now.")
  60.         print "If we had network shares to mount, they would have been mounted by now."
  61.         
  62.         template.unpack_tarball()
  63.         logger.log( "The tarball has now been fetched and unpacked in the chroot dir.")
  64.         print "The tarball has now been fetched and unpacked in the chroot dir."
  65.         
  66. #        template.prepare_chroot()
  67.         logger.log( "So lets go ahead and prepare that chroot.")
  68.         print "So lets go ahead and prepare that chroot."
  69.         
  70.         logger.log( "5.e Configuring the Compile Options")
  71.         template.configure_make_conf()
  72.         logger.log( "/etc/make.conf should be good now.")
  73.         print "/etc/make.conf should be good now."
  74.         
  75.         template.configure_fstab()
  76.         logger.log( "Though out of the Template order, now would be a good time to configure /etc/fstab!")
  77.         print "Though out of the Template order, now would be a good time to configure /etc/fstab!"
  78. #        GLIUtility.spawn_bash()
  79.         
  80.         template.install_portage_tree()
  81.         template.prepare_chroot()
  82.         logger.log( "Portage tree has been updated (probably by emerge sync).")
  83.  
  84.         print "Portage tree has been updated (probably by emerge sync).  Now to bootstrap"
  85.  
  86.         template.bootstrap()
  87.         logger.log( "Even if doing a stage 3, should run this bootstrap step.  It will do nothing for stage3 ppl.")
  88.         logger.log( "System is at stage2")
  89.         print "System is at stage2"
  90.         
  91.         template.emerge_system()
  92.         logger.log( "Emerge system complete. System is at stage3.")
  93.         print "Emerge system complete. System is at stage3."
  94.         
  95.         template.set_timezone()
  96.         logger.log( "Yeah, we gotta do the stupid stuff like setting the timezone too.")
  97.         print "Yeah, we gotta do the stupid stuff like setting the timezone too."
  98.         
  99.         template.emerge_kernel_sources()
  100.         logger.log( "Kernel sources of your choice have been emerged.")
  101.         print "Kernel sources of your choice have been emerged.  Now for the kernel"
  102.         
  103.         logger.log( "In an ideal world we'd now build the kernel using genkernel with a magic configuration somewhere.")
  104.         logger.log( "Insert prompt here incase user is 1337 and likes to compile their own kernel")
  105.         template.build_kernel()
  106.         logger.log( "ADD hotplug supposedly here! and maybe offer prompt for extra kernel modules")
  107.         logger.log( "where do the modules go?  do they get autodetected?")
  108.         
  109.         logger.log( "Now we're in the end-game.  Almost done!")
  110.         print "Now we're in the end-game.  Almost done!"
  111.         template.install_logging_daemon()
  112.         logger.log( "Just have to install the logging daemon.")
  113.         template.install_cron_daemon()
  114.         logger.log( "cron daemon,")
  115.         template.install_filesystem_tools
  116.         logger.log( "and filesystem tools.")
  117.         
  118.         print "now to setup the post network info:"
  119.         logger.log( "now to setup the post network info:")
  120.         template.setup_network_post()
  121.         
  122.         #logger.log( "skipping bootloader.  too dangerous to mess w/ that")
  123.         template.install_bootloader()
  124.         logger.log( "Hopefully the bootloader has been installed.")
  125.         print "Hopefully the bootloader has been installed."
  126.         
  127.         template.update_config_files()
  128.         logger.log( "Config files updated.  Show me potato salad!")
  129.         
  130.         template.configure_rc_conf()
  131.         logger.log( "/etc/rc.conf edited.  for things like clock local and use xdm")
  132.         
  133.         logger.log( "set root password here. create users.  I don't think this is stable enough to test.")
  134.         
  135.         template.unmount_devices()
  136.         logger.log( "unmount and reboot.  If you say that's what she said one more time...")
  137.         
  138.         logger.log( "Forgot the step to install services.  like xdm, xfs, sshd")
  139.         logger.log( "That's all folks.  If you actually see this, i'm impressed.")
  140.         print "That's all folks.  If you actually see this, i'm impressed."
  141.         
  142. if __name__ == '__main__':
  143.     unittest.main()
  144.